In large scale software development projects, a common scenario is multiple developers working in parallel on one or more integrated software applications to provide specific services for customers. The supporting technology has advanced dramatically in recent years, providing tools to coordinate and orchestrate such distributed software development processes. Thus, developers are able to incrementally and independently, to large extent, add and test new functionalities to new or existing software projects. The available tools ensure low risks of creating discrepancies, and provide efficient version control. Examples for distributed version control systems include Perforce® (P4), Git®, GitHub®, etc. However, managing the distributed development in large scale software projects, and the efficient merging of the new functionality into the developed applications address only some of the challenges. Before developers merge the code updates they submit into a master code, the code shall be automatically compiled and tested as part of the continuous integration and continuous delivery (CI/CD) pipeline. Only submissions with successful results of this process can be merged into the master code. Submissions with failed results will be blocked. This process guarantees the correctness and availability of the basic master code. Since the software product is a monolithic program, the automated compiling time take a lot of time that impacts the efficiency of developers. A developer has to wait for centralized compile resources availability. Compile duration itself may take too long, since typically the compile resources are fixed and a developer may have to wait additionally when submissions are dense during high activity periods, while the compile resources may idling in periods with low activity. Often, the parallel submission of new functionality for centralized compilation and testing not only compete for resources, but also create discrepancies between the different versions of the software project, which as a result extends further the time for compilation and building the developed application (or applications).